Création de votre première API avec Spring Boot utilisant JAX-RS et Jersey

Introduction

Dans ce tutoriel, nous allons créer une API RESTful simple pour gérer des commandes en utilisant Spring Boot avec JAX-RS (Java API for RESTful Web Services) et Jersey. Nous allons fournir des exemples pour les opérations GET et POST pour créer une commande.

Étape 1 : Configuration du Projet

Assurez-vous d'avoir configuré votre environnement de développement Java avec Maven et Spring Boot. Créez un nouveau projet Spring Boot en utilisant votre IDE préféré ou en utilisant Maven via la ligne de commande.

Étape 2 : Dépendances Maven

Dans votre fichier pom.xml, ajoutez les dépendances suivantes pour Jersey et les autres dépendances nécessaires :

  • JAX-RS définit des annotations et des interfaces Java pour faciliter le développement d'applications RESTful.
  • Jersey est un framework open source pour le développement d'applications web RESTful en Java. Il fournit une implémentation de référence de la spécification JAX-RS
  • Jackson est une bibliothèque Java open source qui fournit des fonctionnalités pour la sérialisation et la désérialisation d'objets Java en JSON

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jersey</artifactId>
</dependency>
<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.1</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
</dependency>

Étape 3 : Création de la classe Commande

Créez une classe Commande pour représenter les données d'une commande. Assurez-vous d'ajouter les annotations JAXB si vous envisagez de sérialiser/désérialiser les objets en JSON ou XML.

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement (name= "Commande")
public class Commande {
    // Vos champs de commande ici
}

Étape 4 : Implémentation de l'interface CommandesResource

Créez une interface CommandesResource avec les méthodes GET et POST pour gérer les commandes.

import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.util.List;

@Path("/commandes")
public interface CommandesResource {

    @GET
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    List getToutesCommandes();

    @POST
    @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    Response creerCommande(Commande commande);
}

Étape 5 : Implémentation de CommandesResourceImpl

Créez une classe qui implémente l'interface CommandesResource.

import org.springframework.stereotype.Component;
import javax.ws.rs.core.Response;
import java.util.List;

@Component
public class CommandesResourceImpl implements CommandesResource {

    // Implémentez les méthodes de l'interface CommandesResource ici
    @Override
    public List getToutesCommandes() {
        // Implémentez la logique pour récupérer toutes les commandes
        return null;
    }

    @Override
    public Response creerCommande(Commande commande) {
        // Implémentez la logique pour créer une commande
        return null;
    }
}

Étape 6 : Configuration de l'Application Spring Boot

Créez une classe principale Application pour configurer votre application Spring Boot.

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration;

@SpringBootApplication(exclude = JerseyAutoConfiguration.class)
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

Étape 7 : Test de l'API

Maintenant, vous pouvez tester votre API en utilisant des outils comme Postman ou simplement en écrivant des tests unitaires.

Voici un exemple d'utilisation de l'API :

GET /commandes : Récupérer toutes les commandes
POST /commandes : Créer une nouvelle commande


C'est tout ! Vous avez maintenant créé votre première API RESTful avec Spring Boot utilisant JAX-RS et Jersey. Vous pouvez étendre cette API en ajoutant plus d'opérations et de fonctionnalités selon vos besoins.